package pl.enigmatic.jpf;

public class DependencyProperty<O extends DependencyObject<?>, T> {

	private final String name;
	private final Class<T> type;
	private final Class<O> owner;
	private final PropertyMetadata<T> metadata;

	private DependencyProperty(final String name, final Class<T> type, final Class<O> owner, final PropertyMetadata<T> metadata) {
		this.name = name;
		this.type = type;
		this.owner = owner;
		this.metadata = metadata;
	}

	public String getName() {
		return name;
	}

	public Class<T> getType() {
		return type;
	}

	public Class<O> getOwner() {
		return owner;
	}

	public PropertyMetadata<T> getMetadata() {
		return metadata;
	}
}
